package com.ydy.service;


import com.ydy.pojo.*;
import com.ydy.pojo.vo.CommentLevelCountsVO;
import com.ydy.pojo.vo.ItemCommentVO;
import com.ydy.pojo.vo.SearchItemsVO;
import com.ydy.pojo.vo.ShopCartVO;
import com.ydy.utils.PageInfo;

import java.util.List;

public interface ItemService {

    /**根据商品id查询商品信息*/
    public Items queryItemById(String itemId);

    /**根据商品id查询商品图片*/
    public List<ItemsImg> queryItemsImgById(String itemId);

    /**根据商品id查询商品规格*/
    public List<ItemsSpec> queryItemsSpecById(String itemId);

    /**根据商品id查询商品参数*/
    public ItemsParam queryItemsParamById(String itemId);

    /**根据商品id查询商品的评价等级数量*/
    public CommentLevelCountsVO queryCommentCounts(String itemId);

    /**根据商品id查询商品的评价（分页）*/
    List<ItemCommentVO> queryPagedComments(String itemId, Integer level, PageInfo pageInfo);

    /**根据规格ids查询最新的购物车中商品数据（用于刷新渲染购物车中的商品数据）*/
    List<ShopCartVO> queryItemsBySpecIds(String itemSpecIds);

    /**通过分类id搜索商品列表*/
    List<SearchItemsVO> searchItemsByCatId(Integer catId, String sort, PageInfo pageInfo);

    /**通过关键字搜索商品列表*/
    List<SearchItemsVO> searchItemsByKeyWords(String keywords, String sort, PageInfo pageInfo);

    /**根据商品规格id获取规格对象的具体信息*/
    public ItemsSpec queryItemSpecById(String specId);

    /**根据商品id获得商品图片主图url*/
    public String queryItemMainImgById(String itemId);

    /**减少库存*/
    public void decreaseItemSpecStock(String specId, int buyCounts);
}
